//////////////////////////////////////////////////////////////////
//
//
//	Filename:		diamonddozenguts.h
//
//	Developer:		Greg Hnat
//
//	Create date:	1/11/2005
//
///////////////////////////////////////////////////////////////////
//
//
//	Description:  Class definition for Diamond Dozen Guts
//
//
///////////////////////////////////////////////////////////////////
//
//	Copyright (c) 2005 - RealTime Gaming.  All rights reserved.
//
///////////////////////////////////////////////////////////////////
#ifndef DIAMONDDOZENGUTS_H
#define DIAMONDDOZENGUTS_H
////////////////////////////////////
// Include Files                  //
////////////////////////////////////
#include "slotguts.h"
#include "getrand.h"


class DiamondDozenGuts : public SlotGuts
{

    // Shared enums between client and server
    #include "diamonddozencommon.h"

	public:
		DiamondDozenGuts();			// Default Constructor
		virtual ~DiamondDozenGuts(){};	// Destructor

		virtual void  classifyStops(SpinLine* spinline, uint8* stops,uint8 bet, uint8 line, uint8& rtnresult, uint8& multiplier);
		virtual void  classifyScatters(SlotSpin *spin);
        virtual bool8 isValidGuts();
        virtual void  getGameModeMultiplierAndNoteId( uint8& nGameModeMultiplier, uint8& nNoteId );

		virtual bool8 processClientData(uint8 dataType, int32 dataCount, int32 *data);
		virtual void resetForNewGame();

	protected:
		int32 getDiamondDelightMultiplier();
		virtual void InitDiamondDelight();
        virtual bool8 hasSavedGames();

		virtual int32 getFDDiamondMultiplier(int32 diamond);
		virtual int32 getFDDiamondPickSeq(int32 diamond);
		virtual bool8 setFDDiamondMultiplier(int32 diamond, int32 multiplier);
		virtual bool8 setFDDiamondPickSeq(int32 diamond, int32 picSeq);
		virtual int32 getTotalMultiplier();
		virtual int32 getBonusGameState() const;
		virtual void  setBonusGameState( int32 bonusGameState );

        virtual void preSpinClassifyResults(SlotSpin *spin);

};
#endif //#ifndef DIAMONDDOZENGUTS_H